/**
 * 仿写Json原理 Json格式转对象
 * @param {Json格式} jsonStr 
 * @returns 对象 
 */
function Json(jsonStr) {
    //1给jsonStr去掉{}"空格
    let str = jsonStr.replace(/"|{|}|\s/g, '')//'a:1,b:ceshi,c:flase'
    // console.log(str);
    //2以，转数组
    let arr = str.split(',')//['a:1', 'b:ceshi', 'c:flase']
    // console.log(arr);
    //3遍历前定义空对象
    let obj = {}
    //4遍历
    arr.forEach(item => {
        //4.1以：分割数组中的每一项item（每一项是一个字符串）
        let temp = item.split(':')//['a', '1'] ['b', 'ceshi']  ['c', 'flase']
        //4.2判断类型，添加到对象中 第数组一个值是key,数组第二个值是value
        obj[temp[0]] = isNaN(Number(temp[1])) ? temp[1] : Number(temp[1])

        // //添加到对象中
        // let key=item[0]
        // obj[temp[0]]=temp[1]
        // console.log(obj);
    })
    //5返回对象
    return obj
}


/**
 * 仿写JsonStingify对象转json格式
 * @param {对象} obj 
 * @returns json格式字符串
 */

function Stingify(obj) {
    //定义空数组
    let arr = []
    //遍历对象，将键和值PUSH到数组中
    for (let key in obj) {//遍历对象，把对象中的key给变量key，
        // console.log(key,obj[key]);
        let val = obj[key]
        if (!['boolen', 'number'].includes(typeof val)) {
            val=`"${obj[key]}"`
        }
        arr.push(`"${key}":${val}`)
    }
    let json=`'{${arr.join(',')}}'`
    return json
}